package com.example.mq.mqServer.exception;

import lombok.extern.slf4j.Slf4j;

/**
 * @BelongsProject: 0.mq
 * @BelongsPackage: com.example.mq.exception
 * @Author : 游在海里的鱼
 * @CreateTime : 2023-12-13  16:30
 * @Version : 1.0
 * @Description : TODO
 */
@Slf4j
public class MqException extends Exception{
    private Exception e;
    //异常错误的原因
    private String myReason;

    /*------------------------------------普--通--方--法------------------------------------------------------------------
     * @Desc  : 构造方法
     * @Param : [reason]
     * @Return:
    **/
    public MqException(String reason){
        super(reason);
        //设置异常原因reason
        this.myReason = reason;
    }
//    public MqException(Exception e,String reason){
//        //设置异常原因reason
//        this.e = e;
//        this.myReason = reason;
//    }

    /*------------------------------------普--通--方--法------------------------------------------------------------------
     * @Desc  : 打印一个给我写的异常信息的日志,再打印一个系统的异常信息
     * @Param : []
     * @Return: void
    **/
    @Override
    public void printStackTrace() {
        log.error(myReason);
        if(e!=null){
            e.printStackTrace();
        }else {
            super.printStackTrace();
        }
    }




//    /*------------------------------------普--通--方--法------------------------------------------------------------------
//     * @Desc  : 如果异常没有处理,系统将会调用这个getMessage()来获取异常信息来打印
//     * @Param : []
//     * @Return: java.lang.String
//    **/
//    @Override
//    public String getMessage() {
//        log.error(reason);
//        return super.getMessage();
//    }


}
